Аз терминология: GUI деген не және web-бағдарлама деген не?
Пайдаланушы интерфейсін тестілеу ерекшеліктері туралы пайымдаудан бұрын терминдерді анықтайық. Пайдаланушы интерфейсі дегеніміз не? Бұл адамның әр түрлі құрылғылармен өзара іс-қимыл жасау құралдары мен тәсілдерінің жиынтығы. Интернет арқылы хабарласа алатын кез келген сайт ақпаратқа қол жеткізу үшін пайдаланушы интерфейсі болып табылады. GUI дегеніміз не? GUI-Graphical User Interface - графикалық пайдаланушы интерфейсі. Терезеден, мәзірден, түймелерден және басқа виджеттерден тұрады. Графикалық ол, өйткені оның барлық элементтері, пайдаланушыға ұсынылған дисплейде графикалық суреттер түрінде орындалған.
Пайдаланушы интерфейсі арқылы біз компьютерлерде пайдаланылатын қолданбаларға команда береміз. Пайдаланушы интерфейстері кез келген web-қосымшаның ажырамас бөлігі болды. Әрбір операциялық жүйе үшін бағдарламалардағы пайдаланушы интерфейсі мен web-қосымшалардың пайдаланушы интерфейсі арасында айырмашылық бар. Кез-келген заманауи операциялық жүйе кез-келген өзара іс-қимыл жасайтын барлық бағдарламалар үшін пайдаланушы интерфейсінің белгілі бір стандартына негізделеді. Сәйкесінше, осы операциялық жүйеге арналған бағдарламаларда кез келген интерфейстік шешімдерді әзірлеу кезінде ұстануға қабылданған модель бар. Linux үшін GUI дамуы X Window System және OSF/Motif (пайдаланушының графикалық интерфейсін құру үшін стандартты құралдар мен протоколдарды қамтамасыз ететін терезе жүйелері) құруға әкелді. Unix/Linux барлық десктопты орталар үшін жалпы құрамында бар CDE (Common Desktop Enviroment - жалпы десктопты орта) болды:
1. Жауап беруші: Кулик Мария Викторовна Қазақстан Республикасының "Мемлекеттік сатып алу туралы" Заңының 5-баптың 7-тармағына сәйкес Тапсырыс беруші Мемлекеттік сатып алуды жүзеге асыру туралы шешімді мемлекеттік сатып алудың бекітілген не нақтыланған жылдық Жоспары негізінде қабылдайды. X Window жүйесі графикамен жұмыс істеуге мүмкіндік береді (түстер, графикалық примитивтерді салу, мәтінді шығару мүмкіндіктері).
2. Мәзір, түймелер, белгішелер және басқа да графикалық элементтер бар бағдарламалық қосымшаларды әзірлеуге арналған кітапхана элементтерінің жиынтығы). Элементтер жинағы (ол Motif деп аталады) X Window жүйесін басқару элементтерін салу үшін жауап береді.
3. Графикалық орта:
● тілқатысу терезелерінің орналасуы мен көрінісін бақылайтын терезе менеджері;
● сессия менеджері, пайдаланушы элементтерін және пайдаланушының бағдарламалық қосымшамен өзара іс-қимыл баптауларын бақылайтын;
● файл менеджері;
● жұмыс үстелінің менеджері;
● стандартты бағдарламалық бағдарламалар мен бағдарламалар арасындағы байланыс жүйесі.
Мысалы, операциялық жүйелерге арналған қолданушылық интерфейсін құру стандартты кітапханалардың функцияларын пайдалануға әкеледі. Егер пайдаланушы операциялық жүйе үшін ең болмағанда бір қосымшаны пайдалануды үйренсе,ол сол Операциялық жүйе үшін кез келген басқасымен тез талданады.
Бірақ web-қосымшаларымен жағдай басқаша. Web-қосымшалар деп біз web-интерфейсі бар кез келген қосымшаларды түсінеміз. Іс жүзінде web-қосымша бағдарламалық өнім болып табылады, оның негізгі бөлігі қашықтағы серверде, ал пайдаланушы интерфейсі браузерде web-беттер түрінде көрсетіледі. Қазіргі уақытта мұндай қосымшалар күн сайын көбеюде: интернет-дүкендер, интернет-банктер, кәсіпорындарды басқару жүйелері және т. б. Бұл ретте web-қосымшаны іске қосу әдеттегі web-бетті жүктеуден еш айырмашылығы жоқ: браузерде сілтемені енгіземіз - және біздің алдымызда біздің web-қосымшамыз, дәлірек айтқанда, оның пайдаланушы интерфейсі пайда болады.
Web-қосымшаның өзі әдетте кроссплатформ болып табылады, яғни пайдаланушының компьютерінде қандай операциялық жүйе орнатылғанына мүлдем байланысты емес. Алайда, браузерлерде кейбір ерекшеліктерді жүзеге асыру, сондай-ақ қаріптерді көрсету сияқты теңшелетін параметрлер кейбір браузерлерде қолданбалардың дұрыс жұмыс істемеуіне әкелуі мүмкін. Сонымен қатар, әрбір сайт өзінің дизайны бар, яғни графикалық пайдаланушы интерфейсі. Тапсырыс берушінің сайттың бірегейлігіне деген тілектеріне байланысты web-қосымшаларды әзірлеу кезінде "қолмен" бағдарламалау қолданылады. Бұл жағдайда пайдаланушы интерфейсін тестілеуді автоматтандыру қиын.
Тиісінше, пайдаланушы интерфейсін тестілеуді жоспарлау кезінде осы ерекшеліктерді ескеру қажет.
Пайдаланушы интерфейсін тестілеу мақсаттары мен міндеттері
Пайдаланушы интерфейсін тестілеу "пайдаланушы интерфейсі" терминін бір мағыналы түсінумен байланысты өзінің ерекшеліктеріне ие.
Біз білгендей, пайдаланушы интерфейсі-тестілеу қолданыстағы тестілеу ережелері мен әдістері бойынша орындалуы тиіс бағдарламалық өнімнің бөлігі. Демек, тестіленетін бағдарламалық қамтамасыз етуге қойылатын функционалдық және функционалды емес талаптарды ескеру қажет. Демек, пайдаланушы интерфейсін тестілеу үшін формаланған талаптар әзірленуі тиіс, содан кейін тест-кейстер мен тест-жоспарлар жасалады. Әдетте, талаптарда осы қосымшамен (тышқан, пернетақтаның немесе басқа енгізу құрылғысының көмегімен) өзара іс-қимылы кезінде пайдаланушының кез келген ықтимал әрекетіне арналған қолданба реакциясының сипаттамасы, сондай-ақ, қолданба өзі қолдайтын шығару құрылғыларына: принтерге немесе экранға шығаратын ақпараттық хабарламалардың түрі болады. Мұндай талаптарға сәйкес бағдарламаны тестілеу кезінде пайдаланушы интерфейсінің функционалдығын тексеру - яғни іске асырылған функциялардың интерфейс талаптарына қаншалықты сәйкес келетінін тексеру орындалады.
Екінші жағынан, пайдаланушы интерфейсінің ыңғайлылығы мен ойластығына қолданушының қосымшамен өзара іс-қимылының тиімділігі байланысты. Күрделілік, алдыңғы сабақта айтылған функционалды емес талаптардан басқа, пайдаланушы интерфейсінің сыртқы түрі, оның қолайлылығы және пайдаланушы үшін тартымдылығы маңызды болып табылады.
Функционалдық талаптар бағдарламалық өнімде не іске асыру керектігін сипаттайды, соның ішінде қолданушылар қосымшамен өзара іс - қимыл кезінде қандай әрекеттерді орындауы тиіс, ал функционалды емес-қолданба қалай жұмыс істеуі тиіс және ол қандай қасиеттерге немесе сипаттамаларға ие болуы тиіс. Яғни, функционалды емес талаптар-бұл оның функционалдығы емес, қосымшаның сипаттамасын анықтайтын талаптар:атап айтқанда, қол жетімділік, қорғалу, жүктемелерге тұрақтылық және басқа да бірқатар параметрлер. Осылайша," басқа параметрлерге " интерфейсті пайдалану ыңғайлылығы ұғымы жатады. Қолданба жұмысының тиімділігін тексеру адамның қолданушының интерфейсі арқылы өзара әрекеттесуі кезінде пайдалану ыңғайлылығын тексеру деп аталады - usability verification. Мұндай тестілеуді өткізудің күрделілігі интерфейстің "тартымдылығы" түсінігі - жеке элементтерге және жалпы барлық пайдаланушы интерфейсіне нақты талаптар түрінде тым субъективті, әлсіз формализация болып табылады. Алайда, пайдаланушы интерфейсінің қолайлылығына қойылатын талаптар ескерілуі және қалыптастырылуы тиіс.
Жоғарыда аталғанның негізінде, rsquo логичному шығару қойылатын талаптар берілген пайдаланушының интерфейсін мүмкін бөлінген екі топ. Бірінші топқа пайдаланушы интерфейсінің көмегімен қол жетімді қосымшаның ішкі функционалдығына қойылатын талаптар жатады. Бұл талаптарды қарастырайық.
● Пайдаланушы интерфейсі арқылы жүйеге жүгінуіне арналған қолданба реакциясына қойылатын талаптар: талаптардың бұл түрі жүйенің ішкі логикасы мен интерфейстік элементтердің байланысын анықтайды. Мысалы, "көмек" кнопкасын басқан кезде ұйымның сайтында ұйымға өтінішті жіберуді енгізу нысаны пайда болуы тиіс. Мұндай талаптарды тексеру үшін тест мысалында "көмек" батырмасын басу түтінденуі тиіс, содан кейін кнопканы басу нәтижесін тексеру жүргізілуі тиіс (бұл әрекетті орындау кезінде бір нәрсе болды немесе жоқ па?(қажетті форма пайда болды ма? ол үшін қандай құжаттар қажет?).
● Пайдаланушы командаларына қолданба реакция жылдамдығына талаптар (жауап беру уақыты). Пайдаланушы жүйе қарапайым әрекетке жауап бергенге дейін екі сағат күте алмайды, сондықтан бағдарламалық өнімге әр түрлі пайдаланушы операцияларына жауап беру уақытына талап қойылады. Әдетте жауап берудің шекті уақыты өнімге қойылатын талаптарда көрсетілген. Сонымен қатар, егер ұзақ процесс орындалса, пайдаланушының ыңғайлылығы үшін экранға орындау процесінің индикаторы немесе басқа да ақпараттық көрсеткіш шығады. Бұл параметрлер сондай-ақ талаптарға сәйкестігін тексеру үшін тестіленуге жатады.
Екінші топқа жүйенің функционалына жатпайтын талаптар жатады. Бұл талаптарды толығырақ қарастырайық.
● Экрандық пішімдер мен экрандық пішімдер элементтерін сыртқы безендіру талаптары. Түймелер, енгізу нысандары, жарнамалық блоктар және пайдаланушы интерфейсінің басқа да элементтері оларға арналған орындарда болуы тиіс," бір – біріне кіріп кетпеуі " және экрандық формаларды ұйымдастырудың жалпы логикасына бағынуы тиіс-экрандық форманы ресімдеуге қойылатын жалпы талаптар осылай естілуі мүмкін. Сонымен қатар, нақты элементтерді орналастыруға қатаң талаптар қойылуы мүмкін. Мысалы, бұл талаптар осылай естілуі мүмкін:
"Басты мәзір экранның жоғарғы жағында болуы керек, оның қандай терезесі ашық болуы керек. Басты мәзір жолы көлденең болуы және терезенің жоғарғы жағында, экранның жұмыс аймағының үстінде болуы тиіс.
Бұл талапты тестілеу кезінде, әр түрлі қолданба терезелерін ашқан кезде, экранның жоғарғы жағында, қосымшаның жұмыс аймағының үстінде, әрқашан бағдарламаның басты мәзірі орналасқан екеніне көз жеткізу қажет. Ол пайдаланушыға қол жетімді және басқа терезелер мен экрандық формалар элементтерімен жабылмайды.
Басқа мысал экрандық формалар мәтінінің қаріпіне, түймелердің түсіне және т. б. талап болуы мүмкін.
● Қолданба шығаратын хабарлардың сыртқы безендірілуі мен мазмұнына қойылатын талаптар. Мысалы, сайт мекенжайларын тексеру нысанына деректерді енгізу кезінде DaData.ru бұрынғы сабақта болған практикалық сабақ, қате мекенжайды енгізгенде жүйе шығарған хабарламаға қойылатын талап осындай болуы мүмкін:
"Қате мекенжай енгізгенде, жүйе"опцияны таңдаңыз немесе енгізуді жалғастырыңыз" деген хабарды шығаруы керек. Хабарлама тікелей мекенжайды енгізу жолында көрсетілуі тиіс. Хабарлама сұр түсті болуы керек, Roboto қарпі, өлшемі 10,5".
Тиісінше, осы талапты тестілеу мақсаты-аталған жағдай туындаған кезде көрсетілген тәсілмен ресімделген қажетті хабарлама шығарылғанын тексеру.
● Енгізу пішімдеріне қойылатын талаптар: мысалы, күн, уақыт, мекен-жай және т. б. пішіміне де формалануы мүмкін. Бұл жағдайда көрсетілген талаптардан басқа пішімде деректерді Енгізу мүмкін еместігін тексеру қажет. Әдетте, талаптарда мәліметтерді дұрыс емес пішімде енгізуге әрекет ету үшін қосымшаның реакциясы қандай болуы тиіс екендігі көрсетіледі. Мысалы,
Dd-дан басқа пішімде күнді енгізгенде.MM.YYYY, деректер базасына жазба болмайды, өріс ақпаратты енгізу үшін қолжетімді болып қалады, " құжаттың берілген күні дұрыс көрсетілмеген. Dd пішімінде күнді енгізіңіз.MM.YYYY".
Пайдаланушы интерфейсін тестілеуге қойылатын талаптарды жасаған кезде "тест жабынының толықтығы" терминін ескеру қажет, бұл талаптар немесе орындалатын кодпен жабу тығыздығын білдіреді. Егер тестілеуді "тесттердің соңғы жиынтығында жүзеге асырылатын бағдарламаның нақты және күтілетін мінез-құлқы арасындағы сәйкестікті тексеру" деп қарайтын болсақ, онда дәл осы тесттер жиынтығы және тест жабынын анықтайтын болады. Пайдаланушы интерфейсінің қамту ұғымын анықтау кезінде келесі деңгейлерді енгізуге болады:
● Функционалдық жабу - функционалдық талаптарды тексерумен байланысты пайдаланушы интерфейсі талаптарын жабу. Яғни, интерфейс арқылы пайдаланушыға қол жетімді барлық функционал тестілеуі тиіс.
● Құрылымдық жабу - пайдаланушы интерфейсінің әрбір элементі кемінде бір рет тест-кейстерде пайдаланылуы тиіс.
1) интерфейс элементтерінің күйін есепке ала отырып, құрылымдық жабу - пайдаланушы интерфейсінің әрбір элементі оған мүмкін болатын барлық күйге келтірілуі тиіс (мысалы, деректерді енгізу өрісі үшін - бос, ішінара толтырылған, толық толтырылған және т.б.).
Егер тест жабынының толықтығының деңгейі жеткіліксіз болса, талаптарды нақтылау қажет немесе тестілеу нәтижелері бойынша қорытынды есепте тестіленуші өнімнің қандай бөлігі немесе қандай функциялары тексерілгенін (тестілеуді шектеу) көрсету қажет.
Web-қосымшаларды тестілеуге қойылатын талаптарды бөлек анықтаймыз. Қарапайым графикалық пайдаланушы интерфейсіне қарағанда web-интерфейс бағдарламаның өзі емес, стандартталған делдал – web-браузер арқылы көрсетіледі. Web-браузер пайдаланушымен барлық өзара іс-қимылды өзіне алады және қажет болған жағдайда ғана web-қосымшаға жүгінеді. Пайдаланушы интерфейсінің сипаттамасы әдетте HTML рөлінде болатын стандартты көріністе браузерге беріледі. Тиісінше, тестілеу кезінде қолданба барлық танымал операциялық жүйелерде барлық танымал браузерлермен дұрыс жұмыс істейтіндігіне көз жеткізу керек. Мысалы, бағдарлама Windows Windows7-ден жоғары және тек IE және Google Chrome-ден жоғары нұсқалармен жұмыс істейді.
Пайдаланушы интерфейсін тестілеу
Функционалдық тестілеу
Пайдаланушы интерфейсін функционалдық тестілеудің барлық кезеңдері - бағдарламаның кез келген басқа компонентін тестілеу кезіндегі сияқты. Әдетте қолданушының интерфейсін тексеру үшін тест-жоспарлар қолданушының қолдануымен жұмыс істеу кезіндегі әрекеттерін сипаттайды. Тест-кейстер қарапайым тілде (мұнда басу, сонда тексеру) немесе пайдаланушы интерфейсінің қандай да бір автоматтандырылған жүйесінің ресми тілінде жазылуы мүмкін. Бұл ретте тестілерді орындау қолмен немесе пайдаланушының мінез-құлқын эмуляциялайтын автоматтандырылған тестілеу құралын пайдалана отырып жүргізіледі. Тесттерді әзірлеу кезінде оларды үш деңгей бойынша бөлу пайдалы:
● Бизнес-ережелер/функционалдық мүмкіндіктер деңгейі: бұл тест не көрсетеді немесе тексереді? Мысалы, екі немесе одан да көп кітапты тапсырыс берген сатып алушыларға тегін жеткізу ұсынылады.
● Пайдаланушы интерфейсіндегі әрекет реттілігінің деңгейі (workflow): функционалдық мүмкіндікті пайдалану үшін пайдаланушы орындайтын жоғары деңгейдегі сипаттама. Мысалы, себетке екі кітап салып, мекенжайды енгізіп, жеткізу тегін екеніне көз жеткізіңіз.
● Техникалық бөлшектер деңгейі: функционалдық мүмкіндікті пайдалану үшін қандай техникалық қадамдар жасау қажет? Мысалы, дүкен бетін ашу, "testpassword" парольімен "testuser" ретінде авторлану, "/book" бетіне өту, "book" CSS сыныбымен бірінші суреттегі "book" басу, беттің жүктелуін күту, "қазір сатып алу" сілтемесін басу ... және т.б.
Пайдаланушы интерфейсінің функционалдық тестілеуінің бағдарламаның басқа компоненттерін тестілеуден айырмашылығы, бағдарлама орнататын қандай да бір айнымалылардың мәндерін тексеру емес, формалар мен олардың элементтерін, сондай-ақ экранға шығарылатын мәтінді экранға шығару дұрыстығы талдауға жатады. Яғни, калькуляторды тестілеу кезінде біз 1 санын басқан кезде экранда 1 цифры пайда болатынын тексереміз, ал плюс емес, плюс плюс - плюс басқанда. Ал 134567 987665-ке көбейту нәтижесін біз "тең"белгісін басқаннан кейін кейбір санды экранға шығару дұрыстығының бөлігінде ғана тексереміз. Бұл ретте біз "дұрыс форматта, қажетті жерде, қажетті шрифтпен және түспен, қажетті жауап беру жылдамдығымен" дұрыс түсінеміз.
Тестілеу нәтижелері туралы есеп талаптарға сәйкессіздікті сипаттаудан басқа, тестілеушінің интерфейске ескертулерін қамтуы мүмкін. Мысалы, талаптарға сәйкес, Пайдаланушының жеке кабинетінен "шығу" батырмасы оң жақ жоғарғы бұрышта орналасқан - формальды талап орындалды. Алайда, батырма тым жарық, тым жоғары және іс жүзінде көрінбейтін - бұл интерфейстің қолайлылық талабы формализацияға жатпайды. Сынаушы өзінің субъективті пікірін қосып, тиісті скриншотты қоса алады.
Web-қосымшаларды тестілеу кезінде ескертулерде әр түрлі браузерлерде бір элементті көрсету айырмашылығы туралы ақпарат болуы мүмкін.
Функционалды емес тестілеу
Жоғарыда аталған тым жеңіл түйме-бұл функционалды емес тестілеудің нәтижесі. Ол пайдаланушы интерфейсін пайдалану ыңғайлылығын тестілеуге жатады. Пайдаланушы интерфейсін тестілеу кезінде-бұл пайдаланушы интерфейсі арқылы ұсынылатын қосымша функцияларына қол жеткізудің қарапайымдылық деңгейін анықтайтын бағдарламалық өнім сапасының көрсеткіші. Пайдаланушы интерфейсін пайдалану ыңғайлылығына келесі факторлар әсер етеді деп есептеледі:
● оқыту жеңілдігі-адам жүйені пайдалануды тез үйренеді ме;
● оқыту тиімділігі-адам оқудан кейін жылдам жұмыс істейді ме;
● оқытудың есте сақтау қабілеті-адам үйренген нәрселерді есте сақтау оңай ма;
● қателер - адам жиі жұмыста қателіктер жібереді ма;
● жалпы қанағаттанушылық - жүйемен жұмыс істеуінен жалпы әсер оң болып табылады ма.
Мұндай субъективті параметрлерді өлшеу үшін қосымшаның типтік пайдаланушылары тобы таңдалады және олардың жұмыс істеу процесінде олардың жүйемен жұмыс істеу көрсеткіштері (мысалы, жіберілген қателер саны) өлшенеді. Сонымен қатар, оларға сауалнама парақтарын толтыру арқылы қосымша жұмысынан өз әсерлерін айту ұсынылады. Пайдаланушы интерфейсін пайдалану ыңғайлылығын тестілеудің келесі кезеңдерін белгілейді:
● Зерттеушілік-жүйеге қойылатын талаптарды қалыптастырғаннан және интерфейстің прототипін әзірлегеннен кейін жүргізіледі. Бұл кезеңде негізгі мақсат - интерфейсті жоғары деңгейлі зерттеуді жүргізу және оның жеткілікті тиімділік дәрежесімен пайдаланушының міндеттерін шешуге мүмкіндік беретіндігін анықтау.
● Оценочное-төменгі деңгейлі талаптар мен пайдаланушы интерфейсінің егжей-тегжейлі прототипін әзірлегеннен кейін жүргізіледі. Бағалау тестілеуі зерттеуді тереңдетеді және сол мақсатқа ие. Бұл кезеңде пайдаланушы интерфейсінің сипаттамаларының сандық өлшемдері жүргізіледі: жасалған операциялардың санына қатысты көмек жүйесіне жүгінулердің саны, қате операциялардың саны, қате операциялардың салдарын жою уақыты және т. б. өлшенеді.
● Валидациялық-әзірлеуді аяқтау кезеңіне жақын жүргізіледі. Бұл кезеңде интерфейс интерфейсінің интерфейстің ыңғайлы болу мәселелерін реттейтін стандарттарға сәйкестігіне талдау жүргізіледі. Бұл жерде интерфейс компоненті ретінде оның бағдарламалық жүзеге асырылуы, сондай-ақ көмек жүйесі және Пайдаланушы нұсқаулығы түсіндіріледі. Сонымен қатар, осы кезеңде алдыңғы кезеңдерде анықталған интерфейсті пайдалану ыңғайлылығының болмауы тексеріледі.
● Салыстырмалы-тестілеудің бұл түрі интерфейсті әзірлеудің кез келген кезеңінде өткізілуі
мүмкін. Салыстырмалы тестілеу барысында пайдаланушы интерфейсін іске асырудың екі немесе одан да көп нұсқасы салыстырылады.
Әдетте, пайдаланушы интерфейсін пайдалану ыңғайлылығын тестілеу кезінде бағдарламалық өнімнің басқа компоненттерін тестілеу нәтижелерін дәл бағалауды алмастыратын кейбір өлшемдер мен сипаттамалар қолданылады. Атап айтқанда, өнімнің бүтіндігі сияқты сипаттамалар бөлінеді, яғни бір объектілерді, жағдайларды және әрекеттерді белгілеу үшін интерфейстің барлық бөліктерінде бірдей сөздер мен терминдер қолданылуы тиіс. Әрбір пайдаланушы интерфейсінің элементі пайдаланушыға ең аз қажетті және барынша түсінікті ақпаратты қамтиды.
Өкінішке орай, интерфейстің ыңғайлылығын тестілеу кезінде тестілеуді автоматтандыру құралдарын қолдану қиын. Дегенмен, пайдаланушы интерфейсін қолмен және автоматтандырылған тестілеу бар. Қандай жағдайларда қандай әдістер қолданылады?
Пайдаланушы интерфейсін тестілеу әдістері
Қолмен тестілеу
Пайдаланушы интерфейсін қолмен тестілеу тест-кейстер негізінде функционалдық және функционалды емес тестілеу үшін де қолданылады. Әрбір тест-кейс тестілеушінің іс-қимылдарын және әрбір әрекетті орындау нәтижесін (немесе графикалық пайдаланушы интерфейсі арқылы іске асырылатын тестіленетін қосымшаның ең маңызды жауап реакцияларын) қамтиды. Қолмен тестілеу пайдаланушы интерфейсі ыңғайлы, өйткені бақылау сыпайы интерфейс жүргізіледі адаммен, яғни негізгі "тұтынушы" осы бөлігінде бағдарламалық жүйесі. Сонымен қатар, функционалды емес тестілеу кезінде, атап айтқанда, интерфейстің ыңғайлылығын тестілеу кезінде, тестілеудің табыстылығын талдау формальды белгілері бойынша емес, адамзаттық қабылдауға сәйкес орындалады. Мысалы, экрандағы" бұрылыс " меңзері оны форманың бір элементінен басқа жағымсыз көзге жылжытқанда, бірақ маңызды қате емес. Тест-кейстердің арасында осындай тексеру болуы екіталай, алайда тестші көрсетілген қолайсыздық байқап, оны тестілеу нәтижелеріне көрсетеді.
Сервис интерфейсін қолмен тестілеу үшін тест-кейс үлгісі DaData.ru:
№ п/п
Тест-кейстің атауы
Орындалатын әрекет
Күтілетін нәтиже
21 Сайттың басты бетінде сілтемелерді тексеру. “Дубликаттар" батырмасы “Дубликаттар " батырмасын басу Курсорды "дубликаттар" кнопкасына апарған кезде курсор саусағы созылған қол пішінін қабылдайды. Курсордың формасы "интерфейске қойылатын талаптар" құжатында көрсетілген, бет..... пункт…
Тінтуірдің сол жақ батырмасын бір рет басқанда сол терезеде "бірдей табамыз және біріктіреміз" беті ашылады
мекен-жайы, Мекен-жайы, телефондары https://dadata.ru/merging / бетте шығарылатын ақпарат "интерфейске қойылатын талаптар" құжатында көрсетілген. пункт…
Жаңа ашық беттің басты мәзірі өз орнын өзгертті. Басты мәзірдің сипаттамасы "интерфейске қойылатын талаптар" құжатында көрсетілген, бет..... пункт…
Түймені басуға жауап беру уақыты-2 секундтан аспайды
Web-қосымшалардың пайдаланушы интерфейсін қолмен тестілеу-көптеген өзара тәуелді элементтерден тұратын және неғұрлым кәсіби тәсілді талап ететін неғұрлым күрделі процесс. Web-қосымшалардың пайдаланушы интерфейсін қолмен тестілеу кезінде автоматтандырылған тестілеу құралдары болып табылмайтын, бірақ тестілерді орындау нәтижелерін тіркеуге және талдауға көмектесетін көмекші құралдар пайдаланылады.
Мысалы:
Snagit-скриншоттарды алу және экрандағы әрекеттерді жазу үшін.
FireBug-клиенттің жағында қолданбаның қателерін қадағалауға мүмкіндік беретін Firefox үшін плагин.
DragonFly-Opera үшін FireBug аналогы)
Web Developer-Firefox үшін плагин, қосымшаның сыртқы түрін "ұшуға" өзгертуге арналған құрал, cookies, css, формалармен, фреймдермен, олардың бастапқы кодтарымен және т. б. жұмыс.
Қалай болғанда да, қолмен тестілеу екі маңызды кемшілігі бар. Бірінші кемшілік оны жүргізу үшін елеулі адами және уақытша ресурстар талап етіледі. Әсіресе, бұл кемшіліктер регрессиялық тестілеу кезінде және жалпы кез келген қайта тестілеу кезінде байқалады - пайдаланушы интерфейсін қайта тестілеудің әр итерациясында тестілеушінің қатысуы талап етіледі. Екінші-пайдаланушы интерфейсін қабылдаудың субъективтілігі. Ең жақсы интерфейс тестерді ұнатпауы мүмкін, бұл интерфейсті пайдалану ыңғайлылығын тестілеу нәтижесінде әсер етеді.
Осыған байланысты соңғы онжылдықта пайдаланушы интерфейсін тестілеуді автоматтандыру құралдары таратылды.
Автоматтандырылған тестілеу
Пайдаланушы интерфейстерінің функционалдық тестілеуін автоматтандыру үшін пайдаланушы интерфейсін қолмен тестілеу кезінде тестілеушінің әрекеттерін имитациялайтын бағдарламалық құралдар қолданылады. Мұндай құралдар кіру ақпараты ретінде кейбір формальды тілде жазылған тест-кейстерді қолданады, оның операторлары пайдаланушының іс - әрекетіне-командаларды енгізуге, жүгіргіні жылжытуға, мәзір пункттерін және басқа да интерфейстік элементтерді белсендіруге сәйкес келеді. Пайдаланушы интерфейстерін Автоматты функционалдық тестілеу үшін арналған құралдар арасында ең жиі Selenium, RobotFramework, Watir, Zombie қолданылады.js, PhantomJS-web-қосымшаларды тексеру үшін функционалдық тестілік скрипттер жиынтығын жасау құралдары.
Пайдаланушы интерфейсінің күтілетін күйін анықтау үшін мұнда әр түрлі әдістер қолданылуы мүмкін - экранның суреттерін талдау және оларды эталонмен салыстыру немесе операциялық жүйе құралдарымен интерфейс элементтерінің деректеріне қол жеткізу (мысалы, терезенің барлық кнопкаларына олардың дескрипторлары бойынша қол жеткізу және мәтін мәндерін алу).
Тестілеу интерфейсіне ақпаратты беру кезінде және талдау үшін ақпаратты алу кезінде интерфейс элементтеріне қол жеткізудің екі тәсілі қолданылуы мүмкін:
● Элементке кіру оның абсолюттік (экранға қатысты) немесе салыстырмалы (терезеге қатысты) координаттары мен өлшемдерінің тапсырмасы арқылы жүзеге асырылатын позициялық;
● Элементке кіру терезенің шегінде бірегей идентификатордың көмегімен интерфейстік элементті алу арқылы жүзеге асырылатын идентификатор бойынша.
Бірінші әдісті қолдану кезінде пайдаланушы интерфейсіне өзгерістер енгізу кезінде өтпеген тестілердің көп саны анықталады - барлық сценарийлер дұрыс жұмыс істей бастағанына қарай бір негізгі интерфейс элементінің орналасқан жерін өзгерту жеткілікті. Сәйкесінше, тестілеуді автоматтандырудың осындай әдісі кезінде жүйе интерфейсінің әрбір өзгерісі кезінде тест жүйесіндегі сценарийлердің едәуір бөлігін өзгерту қажет. Тестілеу автоматтандырудың мұндай әдісі тұрақты және сирек өзгеретін интерфейсі бар жүйелер үшін жарамды.
Тестілеу автоматтандырудың екінші әдісі интерфейстік элементтердің орналасуын өзгертуге төзімді, бірақ тестілік мысалдардың өзгеруі интерфейстік элементтердің жұмыс логикасы өзгерген жағдайда да қажет болуы мүмкін. Тест мысалын өзгертпей идентификаторлар арқылы қолданғанда да тест дұрыс орындалмайды. Дегенмен, интерфейс элементтеріне барудың бұл тәсілі бағдарламалық жүйелерді тестілеу үшін жақсы, соның ішінде орнатылмаған пайдаланушы интерфейсі бар.
Selenium көмегімен жазылған тест-кейс үлгісі; Firefox браузеріне арналған яндекс-пошта интерфейсін автоматты түрде тестілеу үшін:
Var wd = require ('selenium-webdriver');
var assert = require ('assert');
var SELENIUM_HOST = 'http://localhost:4444/wd/hub';
var URL = 'http://www.yandex.ru';
var client = new wd.Builder()
.usingServer(SELENIUM_HOST)
.withCapabilities({ browserName: 'firefox' })
.build();
client.get (URL).then(function() {
client.findElement ({name: 'text' }).sendKeys ('test');
client.findElement ({ css:'.b-form-button _ input'}).click();
client.getTitle ().then(function (title) {
assert.ok(title.indexOf ('test-Яндекс: табылды') > -1, ' ештеңе табылған жоқ ');
});
client.quit();
});
Бұл курста біз Selenium-мен жұмыс істеуді үйрену мақсатын қоймаймыз, тек кодта жазылғанын түсіндіреміз:
1. Selenium-webdriver қосамыз;
2. Клиентті қажетті браузерді көрсетіп, Selenium-server орнатылған хост беру арқылы бастаймыз;
3. Ашамыз www.yandex.ru;
4. Жүктегеннен кейін іздеу жолына () "test" деген атпен енгізіп, түймені басыңыз (ол CSS-селектор бойынша табады).b-form-button _ input');
5. Іздеу нәтижелерінің тайтл бетін алып, онда 'test — Яндекс: табылды'. (Тайтл-бет тақырыбы - веб-беттің мәтіндік элементі, оның мазмұнын сипаттайтын қысылған пішінде, шолғыш терезесінің тақырыбында көрсетіледі. Яғни Яндекс үшін " Яндекс "сөзі).
Егер іске қосу кезінде (node test.js) ешқандай қате болған жоқ, тест сәтті өтті.
Веб-қосымшаларды функционалды емес тестілеу ерекшеліктері
Web-қосымшалардың пайдаланушы интерфейсін тестілеуден, сондай-ақ классикалық функционалдық тестілеуден басқа, веб-қосымшаларды тестілеу кезінде міндетті түрде қорғалуды тестілеу және жүктемені тестілеу қолданылатынын атап өту қажет.
Практика
Осы сабақ шеңберінде алған барлық білімдерін тәжірибеде қолдануға тырысамыз.
1. Сервисті тестілеуге қойылатын талаптар бойынша тест-кейсті құрастыру https://dadata.ru
a. Мекен-жайға өту https://dadata.ru
b. Тест-кейсті құрастыру талап: сайттың жоғарғы мәзірінде "кеңестер" батырмасын пайдалануға жүйенің реакциясын тексеру.
c. Қажет: тексеру қажет барлық тестілеу нәтижелерін көрсете отырып, тест-кейсті құрастыру.
d. Тест-кейстің формасы:Жүктемелік тестілеу деп болжанған жұмыс және жоғары жүктеме кезінде қосымша жұмысының тұрақтылығын тексеруге бағытталған тестілеу түсініледі. Мұндай тестілеуді өткізу кезінде бірнеше жүздеген немесе мыңдаған келушілерді қоса бір мезгілде жұмыс имитацияланады. Виртуалды пайдаланушылардың әрқайсысы шынайы болу үшін жеке сценарий бойынша сайтқа "жүре" және жеке параметрлері болуы мүмкін. Сондай-ақ, тестілеу барысында келушілердің саны секіртпесі ұлғайған кезде қысқа мерзімді жүктеме шыңдарын еліктеуге болады, бұл әркелкі аудиториясы бар сайттар үшін өте өзекті. Жүктемелік тестілеуді өткізу нәтижесінің дұрыстығына параметрлердің көп саны әсер етуі мүмкін. Мысалы, сайт пайдаланушыларының болжамды саны сияқты факторлар назарға алынады, орташа есеппен және ең жоғары жүктеме кезінде, болжамды уақыт немесе ең жоғары жүктеме уақыты (мысалы, кеңсе қызметкерлері түскі үзіліс кезінде әлеуметтік желілерге кіреді), бірнеше пайдаланушылар бірдей IP-мекен-жайы және т. б. болуы мүмкін бе.
Әлбетте, веб-қосымшаларды жүктеу үшін арнайы тестілеу құралдарын пайдалану қажет. Ең көп таралған құралдар арасында келесі құралдарды атап өтуге болады:
Apache JMeter-Java жазылған ыңғайлы және қуатты кроссплатфорлы құрал. Тегін, арнайы параметрлердің көмегімен пайдаланушының "кездейсоқ" мінез-құлқын еліктеуге мүмкіндік береді. Нәтижелер графикалық түрде шығарылады:
Tsung-Erlang жазылған тегін құрал, орнату өте оңай. Жұмыс логияларын өңдейтін жеке скрипттердің көмегімен тестілеу бойынша әртүрлі есептерді шығаруға болады: Статистика түрінде немесе графикалық түрде. Есеп үлгісі:
WART - қуатты кроссплатформ құралы, ақылы. Икемді параметрлердің көп саны бар. Тест кезінде WAPT сайт тәртібі туралы жан-жақты ақпаратты жинайды. Бұл ақпарат көрнекі кесте және жиынтық есеп түрінде ұсынылады, оны Бағдарлама ішінде көруге, сондай-ақ HTML файл түрінде жазуға болады.
Қорғалуды тестілеу
Қорғалуды тестілеу (security testing) немесе белгілі осалдықтардың жоқтығын тексеру - web-қосымшаларды тестілеудің маңызды процестерінің бірі. Бұл тестілеу жүйені бұзу жолдарын диагностикалауға, веб-қосымшалардың немесе сайттың қорғалуын бағалауға, сондай-ақ зиянкестерден қорғауға, құпия деректерге қол жеткізуге байланысты тәуекелдерді талдауға бағытталған. Құпиялылық, қол жетімділік және тұтастық қағидаттарына негізделе отырып, қауіпсіздікті тестілеу деректердің, тіркелгілердің, пайдаланушылардың қол жетімділігі мен қосылыстарының сақталуын қамтамасыз етуге мүмкіндік береді. Неге бұл тестілеу түрі маңызды-анық.
● Веб-қосымшалар жаппай пайдалануға бағытталған, сондықтан зиянкестердің әрекеттерінен туындаған жұмыстағы іркілістер пайдаланушылардың көп санына теріс әсер етуі мүмкін.
● Веб-қолданбалар құпия ақпаратты сақтай алады, бұл деректердің ағуы өте маңызды салдары болуы мүмкін.
● Браузер мен сервер арасында ақпарат алмасу ашық хаттамаларды пайдалана отырып, Ашық арналар арқылы жиі жүреді, сондықтан клиенттер беретін деректерді бақылау қиын.
● Веб-қосымшаларды әзірлеу әрдайым қорғалуы мен сенімділігін қамтамасыз етуге тиісті назар аудара алмайды.
Web-қосымшаның қорғалуын сынауға оның үш қасиеттері жатады
● Ақпаратқа рұқсатсыз қол жеткізуді болдырмайтын құпиялылық.
● Ақпараттың бұрмалануын болдырмайтын тұтастық.
● Ақпаратқа рұқсат етілген қолжетімділікті қамтамасыз ететін қолжетімділік.
Web-қосымшалардың қорғалуын тестілеуді сапалы өткізу үшін арнайы тестілеу құралдарын пайдалану ұсынылады. Ең көп таралған құралдар арасында келесі құралдарды атап өтуге болады:
OWASP LiveCD-веб-қосымшалардың қауіпсіздігін қамтамасыз етудің ашық жобасы аясында жасалған құрал. OWASP технологияларды әзірлеумен айналысатын бірде-бір компаниямен аффилиирленбеген, бірақ ол қауіпсіздік технологияларын сауатты пайдалануды қолдайды. OWASP үлестесуден бас тартады, өйткені басқа ұйымдардың ықпалынан еркіндік қосымшалардың қауіпсіздігі туралы әділ, пайдалы және арзан ақпараттың таралуын жеңілдетуі мүмкін.
Acunetix Web Vulnerability Scanner-web-қосымшалардың ақылы автоматтандырылған қауіпсіздік сканері. Классикалық схема бойынша жұмыс істейді: алдымен сайттың құрылымы зерттеледі және қалыптасады, соның ішінде барлық табылған сілтемелер мен файлдар, содан кейін осалдықтарды іздеу жүргізіледі.
SkipFish-графикалық интерфейсі жоқ ашық коды бар өте қарапайым тегін қауіпсіздік сканері. Қосымшаны талдағаннан кейін толық есеп жасалады.
XSpider - ақылы (7 нұсқасымен, бұрын тегін болған) осалдықтар сканері. Ресей фирмасы Positive Technologies шығарады.
Әрине, қорғалуды тестілеу web-қосымшаның өзін тестілеумен шектелмейді. Осалдық web-серверде, операциялық жүйеде, пошта жүйесінде, ftp-серверде немесе тағы бір жерде болуы мүмкін. Бірақ қорғалған ортаны құру міндеті көп жағдайда жүйелік әкімшілердің жауапкершілік аймағында, ал web-қосымшаның қорғалуы оны әзірлеушілер мен тестілеушілердің жауапкершілік аймағында жатыр. Тестілеудің осы түріне өте жауапкершілікпен қарау керек.
Қорытынды
Бұл сабақта біз пайдалану ыңғайлылығын тестілеу бағдарламалық өнімді пайдалану ыңғайлылығын тестілеу сияқты емес екенін анықтадық. пайдаланушы интерфейсінің функционалдығы, ол тек пайдаланушы интерфейсінде, сондай-ақ өнімнің басқа да ықтимал компоненттеріндегі сияқты жүргізіледі. Яғни, пайдаланушы интерфейсін тестілеу кезінде біз оның пайдалану ыңғайлылығын тексереміз.
Біз енді web-қосымшалардың пайдаланушы интерфейстерін тестілеу-қарапайым қосымшаларды тестілеуге қарағанда күрделі міндет, өйткені бұл жағдайда кроссплатформенті тестілеуді өткізу және әртүрлі браузерлерде тесттерді өту қажет.
Біз пайдаланушы интерфейсін тестілеуге қойылатын талаптар функционалдық және функционалды емес болып табылатынын білдік және кез келген жағдайда барлық осы талаптар формальды болуы тиіс деген қорытындыға келді. Біз тест жабынының толықтығы түсінігін енгіздік және тест жабынының талап етілетін деңгейі жоғары болған сайын, тестіленуші талаптарды немесе орындалатын кодты тексеру үшін тесттер соғұрлым көп таңдалатынын анықтадық.
Біз пайдаланушы интерфейсін тестілеуді қолмен жүргізуге немесе автоматтандырылған тестілеу құралдарын пайдалануға болатынын анықтадық және тестілеудің осы түрлерінің әрқайсысының артықшылықтары мен кемшіліктерін нақтыладық.
Курс аясында біз сізді тестілеу терминологиясымен таныстыруға, тестілеу түрлерін ажыратуға, тест-кейстер мен тест-жоспарлар құруға, тестілеу нәтижелерін құжаттауға және бағдарламалық қамтамасыз етуді тікелей тестілеуге тырыстық. Бұл ағымдағы курс аясында соңғы сабақ болғандықтан, үй тапсырмасы болмайды. Сіздерді басқа курстардан өтуге шақырамыз.